/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package wasolicitudesfiec.general;

import com.sun.data.provider.DataProviderException;
import com.sun.data.provider.FieldKey;
import com.sun.data.provider.RowKey;
import com.sun.data.provider.impl.AbstractTableDataProvider;
import com.sun.data.provider.impl.IndexRowKey;
import java.util.ArrayList;
import java.util.Date;
import java.util.Vector;
import wasolicitudesfiec.registros.Rg_Solicitud;

/**
 *
 * @author kabad
 */
public class Dp_ProcesosEnCurso extends AbstractTableDataProvider {

    private Vector<Rg_Solicitud> listaRgSolicitudes = new Vector<Rg_Solicitud>();

    public Dp_ProcesosEnCurso() {
        FieldKey key;

        key = new FieldKey("idSolicitud");
        key.setDisplayName("id solicitud");
        addFieldKey(key);

        key = new FieldKey("nombreinstanciaproceso");
        key.setDisplayName("Instancia de proceso");
        addFieldKey(key);

        key = new FieldKey("tipoSolicitud");
        key.setDisplayName("Tipo de solicitud");
        addFieldKey(key);

        key = new FieldKey("referencia");
        key.setDisplayName("Referencia");
        addFieldKey(key);

        key = new FieldKey("solicitante");
        key.setDisplayName("Solicitante");
        addFieldKey(key);

        key = new FieldKey("fechaCreacion");
        key.setDisplayName("Fecha creación");
        addFieldKey(key);

        key = new FieldKey("fechaModificacion");
        key.setDisplayName("Fecha última modificación");
        addFieldKey(key);

        key = new FieldKey("actividadActual");
        key.setDisplayName("Actividad actual");
        addFieldKey(key);

        key = new FieldKey("ejecutor");
        key.setDisplayName("Ejecutor");
        addFieldKey(key);

        key = new FieldKey("ejecutorEsUsuarioLogoneado");
        key.setDisplayName("Ejecutor es usuario logoneado");
        addFieldKey(key);

       key = new FieldKey("estado");
        key.setDisplayName("Estado de solicitud");
        addFieldKey(key);
        key = new FieldKey("accion");
        key.setDisplayName("Acción");
        addFieldKey(key);
        key = new FieldKey("descripcion");
        key.setDisplayName("Descripcion");
        addFieldKey(key);
          key = new FieldKey("actividadPendiente");
        key.setDisplayName("Actividad Pendiente");
        addFieldKey(key);
    }

    @Override
    public Class getType(FieldKey fieldKey) throws DataProviderException {
        if (fieldKey.getFieldId().equals("fechaInicio")) {
            return (new Date()).getClass();
        } else if (fieldKey.getFieldId().equals("fechaModificacion")) {
            return (new Date()).getClass();
        } else if (fieldKey.getFieldId().equals("ejecutorEsUsuarioLogoneado")) {
            return (new Boolean(false)).getClass();
        } else {
            return (new String()).getClass();
        }
    }

    @Override
    public boolean isReadOnly(FieldKey fieldKey) throws DataProviderException {
        return false;
    }

    @Override
    public int getRowCount() throws DataProviderException {
        return this.getListaRgSolicitudes().size();
    }

    @Override
    public Object getValue(FieldKey fieldKey, RowKey row) throws DataProviderException {
		if (fieldKey==null)
			return "";

        int indice = ((IndexRowKey) row).getIndex();
        Rg_Solicitud registro = (Rg_Solicitud) this.getListaRgSolicitudes().get(indice);
		String fieldId = fieldKey.getFieldId();
        if (fieldId.equals("tipoSolicitud")) {
            return registro.getModelo() ;
        } else if (fieldId.equals("ejecutorEsUsuarioLogoneado")) {
            return registro.isEjecutorEsUsuarioLogoneado();
        } else if (fieldId.equals("idSolicitud")) {
            return registro.getIdSolicitud();
        } else if (fieldId.equals("nombreinstanciaproceso")) {
            return registro.getNombreinstanciaproceso();
        } else if (fieldId.equals("referencia")) {
            return registro.toString();
        } else if (fieldId.equals("solicitante")) {
            return registro.getSolicitante() + " (" + registro.getRolSolicitante() + ")";
        } else if (fieldId.equals("fechaCreacion")) {
            return registro.getFechacreacion();
        } else if (fieldId.equals("fechaModificacion")) {
            return registro.getFechamodificacion();
        } else if (fieldId.equals("actividadActual")) {
            return registro.getActividad();
        } else if (fieldId.equals("ejecutor")) {
            return  registro.getEjecutor() + " ("+registro.getRolEjecutor() + ")" ;
        } else if (fieldId.equals("modelo")) {
            return registro.getModelo();
        } else if (fieldId.equals("estado")) {
            return registro.getEstado();
        } else if (fieldId.equals("accion")) {
            return registro.getAccion();
        } else if (fieldId.equals("descripcion")) {
            return registro.getDescripcion();

        } else if (fieldKey.getFieldId().equals("actividadPendiente ")) {
            return registro.getActividadPendiente();
        }else {
            return registro.getActividadPendiente();
        }
    }

    @Override
    public void setValue(FieldKey fieldKey, RowKey row, Object value) throws DataProviderException {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public boolean canInsertRow(RowKey beforeRow) throws DataProviderException {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public RowKey insertRow(RowKey beforeRow) throws DataProviderException {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public boolean canAppendRow() throws DataProviderException {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public RowKey appendRow() throws DataProviderException {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public boolean canRemoveRow(RowKey row) throws DataProviderException {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public void removeRow(RowKey row) throws DataProviderException {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    public Vector<Rg_Solicitud> getListaRgSolicitudes() {
        return listaRgSolicitudes;
    }

    public void setListaRgSolicitudes(Vector<Rg_Solicitud> listaRgSolicitudes) {
        this.listaRgSolicitudes = listaRgSolicitudes;
    }
}
